import logging.handlers
import time

class GetLogger:

    logger = None
    #在最外侧运行 run_main.py
    # filename = "./log/tpshop{}.log".format(time.strftime("%Y_%m_%d %h_%M_%S"))
    #获取logger
    @classmethod
    def get_logger(cls):

        #如果logger 为空
        if cls.logger is None:
            #获取 日志器
            cls.logger = logging.getLogger()
            #设置日志器默认格式
            cls.logger.setLevel(logging.INFO)
            #获取处理器 控制台
            sh = logging.StreamHandler()
            #获取处理文件（时间）
            th = logging.handlers.TimedRotatingFileHandler(filename = "./log/tpshop{}.log".format(time.strftime("%Y_%m_%d %h_%M_%S")),
                                                           when="midnight", #时间是夜
                                                           interval=1,#间隔是1
                                                           backupCount=30,
                                                           encoding="utf-8")
            #获取格式器
            fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s]"
            fm = logging.Formatter(fmt)
            #将格式器 设置 处理器中
            sh.setFormatter(fm)
            th.setFormatter(fm)
            #将处理器添加到 日志器中
            cls.logger.addHandler(sh)
            cls.logger.addHandler(th)
        #返回 日志器
        return cls.logger